/**
  可以写入.vue文件中所有的选项
  data, computed, watch, methods
  1) 如果是混入生命周期钩子函数, 先执行混入的, 再执行自身的
  2) 如果混入的是data选项中的属性, 或者computed选项中的计算属性, 或者methods中的函数; 如果有同名的, .vue文件中覆盖混入的, 如果没有同名的, 则叠加放入
 */
import { mapGetters } from "vuex";

export default {
  computed: {
    ...mapGetters("cart", ["total"]),
  },
  watch: {
    total: {
      immediate: true,
      handler(newValue) {
        // -----------------------------------------
        // #ifdef MP-WEIXIN
        // tabBar页面对应的路径
        const tabBarPageRoute = [
          "pages/home/home",
          "pages/category/category",
          "pages/cart/cart",
          "pages/my/my",
        ];
        const pageStack = getCurrentPages();
        const currentPage = pageStack[pageStack.length - 1];
        const currentRoute = currentPage.route;
        // 如果不是tabBar页面, 则不往后执行
        if (!tabBarPageRoute.includes(currentRoute)) return;
        // #endif
        // ---------------------------------------

        if (newValue > 0) {
          // 设置角标
          uni.setTabBarBadge({
            index: 2,
            text: "" + newValue,
          });
        } else {
          uni.removeTabBarBadge({
            index: 2,
          });
        }
      },
    },
  },
  onShow() {
    console.log("我被执行了....");
    if (this.total > 0) {
      // 设置角标
      uni.setTabBarBadge({
        index: 2,
        text: "" + this.total,
      });
    } else {
      uni.removeTabBarBadge({
        index: 2,
      });
    }
  },

  // --------------------
  // created() {
  //   console.log("created()执行了----混入文件中");
  // },
  // methods: {
  //   fn() {
  //     console.log("fn1被执行了----混入文件中");
  //   },
  // },
};
